Microprocessors can use a single bus for both instruction and data memory accesses. Such microprocessors are a part of systems with Von Neumann architectures. These systems have shared signals and memory for code and data. Thus, a program being run in such a setting can be modified by itself when it is stored in read-write memory.